package com.md.api;

import com.md.model.page.PageResponse;
import com.md.model.system.CommonResult;
import com.md.request.AppInfoRequest;
import com.md.request.LinkModuleRequest;
import com.md.request.QueryAppInfoRequest;
import com.md.response.AppInfoResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author 刘骄阳
 * 2024-07-14 21:52
 */
@Api("应用信息")
public interface AppInfoApi {
  String PATH_PREFIX = "/api/app-info";

  /**
   * 新增应用信息
   *
   * @param request 请求实体
   * @return 操作结果
   */
  @PostMapping(PATH_PREFIX + "/create")
  @ApiOperation("新增应用信息")
  CommonResult<AppInfoResponse> create(@RequestBody AppInfoRequest request);

  /**
   * 更新应用信息
   *
   * @param request 请求实体
   * @return 操作结果
   */
  @PostMapping(PATH_PREFIX + "/update")
  @ApiOperation("更新应用信息")
  CommonResult<AppInfoResponse> update(@RequestBody AppInfoRequest request);


  /**
   * 查询应用信息
   *
   * @param request 请求实体
   * @return 操作结果
   */
  @PostMapping(PATH_PREFIX + "/query")
  @ApiOperation("查询应用信息")
  CommonResult<AppInfoResponse> query(@RequestBody QueryAppInfoRequest request);

  /**
   * 查询应用信息
   *
   * @param request 请求实体
   * @return 操作结果
   */
  @PostMapping(PATH_PREFIX + "/query/list")
  @ApiOperation("批量查询应用信息")
  CommonResult<PageResponse<AppInfoResponse>> queryList(@RequestBody QueryAppInfoRequest request);

  /**
   * 查询应用信息
   *
   * @param request 请求实体
   * @return 操作结果
   */
  @PostMapping(PATH_PREFIX + "/link")
  @ApiOperation("关联模块")
  CommonResult<Void> linkModule(@RequestBody LinkModuleRequest request);
}
